﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using ThiefRun.Util.Graph;
using ThiefRun.Util.Keyboards;

namespace ThiefRun.States
{
    public class State
    {
        #region Constants
        // Constants
        #endregion Constants

        #region Properties
        // Properties
        protected ThiefRunGame game;
        protected KeyboardManager keyboardManager;
        #endregion Properties

        #region Computed Properties
        // Computed Properties
        #endregion

        #region Methods
        // Methods

        /// <summary>
        /// Initialize the State Graph.
        /// </summary>
        public State(ThiefRunGame game)
        {
            this.game = game;
            this.keyboardManager = new KeyboardManager();
        }

        /// <summary>
        /// Draw the current stage.
        /// </summary>
        /// <param name="gameTime"></param>
        /// <param name="spriteBatch"></param>
        public virtual void Draw(GameTime gameTime, SpriteBatch spriteBatch)
        {
        }

        /// <summary>
        /// Perform the actions of the current stage.
        /// </summary>
        /// <param name="gameTime"></param>
        public virtual void Update(GameTime gameTime)
        {
            keyboardManager.Update(gameTime);
        }
        #endregion Methods
    }
}
